/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package paquetevistas.compra;

import Seguridad.Controlador.controladorseguridad;
import controlador.compra.controladorcompra;
import java.util.Date;
import javax.swing.JOptionPane;
import modelos.Proveedor;
import modelos.Usuario;
import paquetevistas.Escritorio;
import static paquetevistas.compra.NuevoProveedor.mycontroladorcompra;
import static paquetevistas.compra.NuevoProveedor.validacion;

/**
 *
 * @author Jacklin
 */
public class ModificarProveedor extends javax.swing.JInternalFrame {

    /**
     * Creates new form ModificarProveedor
     */
    public static AsignarProveedorProducto productoproveedor;
    public static controladorcompra mycontroladorcompra = new controladorcompra();

    //Para el registro de Log
    public static Usuario usuario = lbj.LBJ.Login.usuario;
    public static controladorseguridad mycontroladorseguridad = new controladorseguridad();
    
    public ModificarProveedor() {
        initComponents();
        loadComponents();
    }

    void loadComponents() {
        lbj.LBJ.Login.escritorio.proveedor.refreshSupplierTable();
        Proveedor proveedor = lbj.LBJ.Login.escritorio.proveedor.proveedoraeditar;

        jrazon.setText(proveedor.getRazonsocial());
        jruc.setText("" + proveedor.getRuc());
        jdireccion.setText(proveedor.getDireccion());
        jtelefono.setText("" + proveedor.getTelefono());
        jcorreo.setText(proveedor.getCorreo());
        if(proveedor.getDnicontacto()!=null){
          jdniContacto.setText(proveedor.getDnicontacto().toString());  
        }
        if(proveedor.getTelefonocontacto()!=null){
          jcelularContacto.setText(proveedor.getTelefonocontacto().toString());  
        }
        
        jnombreContacto.setText(proveedor.getNombrecontacto());
        jComboEstado.setSelectedItem(proveedor.getEstado());

//        jTextField1.setText(product.getNombre());
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLayeredPane1 = new javax.swing.JLayeredPane();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jruc = new javax.swing.JTextField();
        jdireccion = new javax.swing.JTextField();
        jtelefono = new javax.swing.JTextField();
        jcorreo = new javax.swing.JTextField();
        jdniContacto = new javax.swing.JTextField();
        jnombreContacto = new javax.swing.JTextField();
        jcelularContacto = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jComboEstado = new javax.swing.JComboBox();
        jLabel12 = new javax.swing.JLabel();
        jrazon = new javax.swing.JTextField();
        jLayeredPane2 = new javax.swing.JLayeredPane();
        jButton1 = new javax.swing.JButton();
        jLabel9 = new javax.swing.JLabel();
        jButton2 = new javax.swing.JButton();
        jLabel11 = new javax.swing.JLabel();
        jButton3 = new javax.swing.JButton();
        jLabel10 = new javax.swing.JLabel();
        jButton5 = new javax.swing.JButton();
        jLabel13 = new javax.swing.JLabel();

        setClosable(true);
        setIconifiable(true);
        setTitle("Editar Proveedor");

        jLabel2.setText("Dirección:");
        jLayeredPane1.add(jLabel2);
        jLabel2.setBounds(20, 90, 100, 10);

        jLabel3.setText("Teléfono:");
        jLayeredPane1.add(jLabel3);
        jLabel3.setBounds(20, 120, 110, 14);

        jLabel4.setText("Correo:");
        jLayeredPane1.add(jLabel4);
        jLabel4.setBounds(20, 150, 100, 14);

        jLabel5.setText("DNI del Contacto:");
        jLayeredPane1.add(jLabel5);
        jLabel5.setBounds(20, 180, 150, 14);

        jLabel6.setText("Nombre del contacto:");
        jLayeredPane1.add(jLabel6);
        jLabel6.setBounds(20, 210, 160, 14);

        jLabel7.setText("Celular del contacto:");
        jLayeredPane1.add(jLabel7);
        jLabel7.setBounds(20, 240, 160, 14);

        jLabel8.setText("Ruc:");
        jLayeredPane1.add(jLabel8);
        jLabel8.setBounds(20, 60, 70, 14);

        jruc.setEnabled(false);
        jruc.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrucActionPerformed(evt);
            }
        });
        jLayeredPane1.add(jruc);
        jruc.setBounds(190, 60, 210, 20);
        jLayeredPane1.add(jdireccion);
        jdireccion.setBounds(190, 90, 210, 20);
        jLayeredPane1.add(jtelefono);
        jtelefono.setBounds(190, 120, 210, 20);

        jcorreo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jcorreoActionPerformed(evt);
            }
        });
        jLayeredPane1.add(jcorreo);
        jcorreo.setBounds(190, 150, 210, 20);
        jLayeredPane1.add(jdniContacto);
        jdniContacto.setBounds(190, 180, 210, 20);
        jLayeredPane1.add(jnombreContacto);
        jnombreContacto.setBounds(190, 210, 210, 20);
        jLayeredPane1.add(jcelularContacto);
        jcelularContacto.setBounds(190, 240, 210, 20);

        jLabel1.setText("Estado:");
        jLayeredPane1.add(jLabel1);
        jLabel1.setBounds(20, 260, 110, 30);

        jComboEstado.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Activo", "Inactivo" }));
        jLayeredPane1.add(jComboEstado);
        jComboEstado.setBounds(190, 270, 210, 20);

        jLabel12.setText("Razón Social:");
        jLayeredPane1.add(jLabel12);
        jLabel12.setBounds(20, 30, 120, 14);

        jrazon.setEnabled(false);
        jrazon.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrazonActionPerformed(evt);
            }
        });
        jLayeredPane1.add(jrazon);
        jrazon.setBounds(190, 30, 210, 20);

        jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/save.png"))); // NOI18N
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jLayeredPane2.add(jButton1);
        jButton1.setBounds(40, 20, 65, 41);

        jLabel9.setText("Guardar");
        jLayeredPane2.add(jLabel9);
        jLabel9.setBounds(50, 70, 70, 10);

        jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/limpiar.png"))); // NOI18N
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        jLayeredPane2.add(jButton2);
        jButton2.setBounds(224, 20, 65, 40);

        jLabel11.setText("Limpiar");
        jLayeredPane2.add(jLabel11);
        jLabel11.setBounds(240, 70, 70, 14);

        jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/plus.png"))); // NOI18N
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });
        jLayeredPane2.add(jButton3);
        jButton3.setBounds(130, 20, 70, 40);

        jLabel10.setText("Asignar Producto");
        jLayeredPane2.add(jLabel10);
        jLabel10.setBounds(120, 60, 100, 30);

        jButton5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/error 1.png"))); // NOI18N
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });
        jLayeredPane2.add(jButton5);
        jButton5.setBounds(310, 20, 60, 40);

        jLabel13.setText("Cancelar");
        jLayeredPane2.add(jLabel13);
        jLabel13.setBounds(320, 70, 60, 14);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(31, 31, 31)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 431, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLayeredPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 410, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 320, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLayeredPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jrucActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrucActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jrucActionPerformed

    private void jcorreoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jcorreoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jcorreoActionPerformed

    private void jrazonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrazonActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jrazonActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        // TODO add your handling code here:
        jdireccion.setText("");
        jtelefono.setText("");
        jcorreo.setText("");
        jdniContacto.setText("");
        jnombreContacto.setText("");
        jcelularContacto.setText("");
        jComboEstado.setSelectedIndex(0);
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        if (JOptionPane.showConfirmDialog(rootPane, "¿Desea realmente editar este proveedor?",
                "Mensaje", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
            Proveedor proveedor = lbj.LBJ.Login.escritorio.proveedor.proveedoraeditar;
            String direccion = jdireccion.getText();
            String correo = jcorreo.getText();
            String nombreContacto = jnombreContacto.getText();
            Integer dniContacto = -1;
            Integer celularContacto = -1;
            Integer limitinf2 = 99999999;
            Integer limitsup2 = 1000000000;
            Integer limitinf3 = 999999;
            Integer limitsup3 = 10000000;
            Integer limitinf4 = 9999999;
            Integer limitsup4 = 100000000;
            String estado = jComboEstado.getSelectedItem().toString();


            if (validacion.es_vacio(direccion)) {
                JOptionPane.showMessageDialog(this, validacion.msj + "Dirección");
            } else if (validacion.es_vacio(jtelefono.getText())) {
                JOptionPane.showMessageDialog(this, validacion.msj + "Teléfono");
            } else if (!validacion.es_numero_entero(jtelefono.getText())) {
                JOptionPane.showMessageDialog(this, "Debe insertar un número de 7 dígitos");
            } else {
                Integer telefono = Integer.parseInt(jtelefono.getText());
                if ((telefono.compareTo(limitinf3) < 0) || (telefono.compareTo(limitsup3) > 0)) {
                    JOptionPane.showMessageDialog(this, "Debe insertar un número de 7 dígitos");
                } else if (validacion.es_vacio(jcorreo.getText())) {
                    JOptionPane.showMessageDialog(this, validacion.msj + "Correo");
                } else if (!validacion.es_correo(correo)) {
                    JOptionPane.showMessageDialog(this, validacion.msj);
                } else if (!(validacion.es_vacio(jdniContacto.getText()))) {
                    if (!validacion.es_numero_entero(jdniContacto.getText())) {
                        JOptionPane.showMessageDialog(this, "Debe insertar un número de 8 dígitos");
                    } else {
                        dniContacto = Integer.parseInt(jdniContacto.getText());
                        if ((dniContacto.compareTo(limitinf4) < 0) || (dniContacto.compareTo(limitsup4) > 0)) {
                            JOptionPane.showMessageDialog(this, "Debe insertar un número de 8 dígitos");
                        } else if (!(validacion.es_vacio(jcelularContacto.getText()))) {
                            if (!validacion.es_numero_entero(jcelularContacto.getText())) {
                                JOptionPane.showMessageDialog(this, "Debe insertar un número de 9 dígitos");
                            } else {
                                celularContacto = Integer.parseInt(jcelularContacto.getText());
                                if ((celularContacto.compareTo(limitinf2) < 0) || (celularContacto.compareTo(limitsup2) > 0)) {
                                    JOptionPane.showMessageDialog(this, "Debe insertar un número de 9 dígitos");
                                } else {
                                    mycontroladorcompra.modificarproveedor(proveedor, direccion, telefono, correo, dniContacto,
                                            nombreContacto, celularContacto, estado);
                                    lbj.LBJ.Login.escritorio.proveedor.refreshSupplierTable();
                                    //this.setVisible(false);
                                    JOptionPane.showMessageDialog(this, "El proveedor se editó correctamente");
                                    this.dispose();
                                }
                            }
                        } else {
                            mycontroladorcompra.modificarproveedor(proveedor, direccion, telefono, correo, dniContacto,
                                    nombreContacto, celularContacto, estado);
                            lbj.LBJ.Login.escritorio.proveedor.refreshSupplierTable();
                            //this.setVisible(false);
                            this.dispose();
                        }
                    }
                } else if (!(validacion.es_vacio(jcelularContacto.getText()))) {
                    if (!validacion.es_numero_entero(jcelularContacto.getText())) {
                        JOptionPane.showMessageDialog(this, "Debe insertar un número de 9 dígitos");
                    } else {
                        celularContacto = Integer.parseInt(jcelularContacto.getText());
                        if ((celularContacto.compareTo(limitinf2) < 0) || (celularContacto.compareTo(limitsup2) > 0)) {
                            JOptionPane.showMessageDialog(this, "Debe insertar un número de 9 dígitos");
                        } else {
                            mycontroladorcompra.modificarproveedor(proveedor, direccion, telefono, correo, dniContacto,
                                    nombreContacto, celularContacto, estado);
                            lbj.LBJ.Login.escritorio.proveedor.refreshSupplierTable();
                            //this.setVisible(false);
                            JOptionPane.showMessageDialog(this, "El proveedor se editó correctamente");
                            
                            mycontroladorseguridad.insertarlog(usuario, new Date(), "Editar", "Proveedor", "Editar Proveedor");
                            this.dispose();
                        }
                    }
                } else {
                    mycontroladorcompra.modificarproveedor(proveedor, direccion, telefono, correo, dniContacto,
                            nombreContacto, celularContacto, estado);
                    lbj.LBJ.Login.escritorio.proveedor.refreshSupplierTable();
                    //this.setVisible(false);
                    JOptionPane.showMessageDialog(this, "El proveedor se editó correctamente");
                    
                    mycontroladorseguridad.insertarlog(usuario, new Date(), "Editar", "Proveedor", "Editar Proveedor");
                    this.dispose();
                }
            }
        }
    }//GEN-LAST:event_jButton1ActionPerformed

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
        // TODO add your handling code here:
        if (productoproveedor == null || productoproveedor.isClosed()) {
            productoproveedor = new AsignarProveedorProducto();
            Escritorio.proveedor.getDesktopPane().add(productoproveedor);
            productoproveedor.setVisible(true);
        } else {
            try {
                productoproveedor.setSelected(true);
            } catch (Exception e) {
            }
        }
    }//GEN-LAST:event_jButton3ActionPerformed

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
        // TODO add your handling code here:
        if(JOptionPane.showConfirmDialog(null, "¿Está seguro de cancelar la edición?",
            "Mensaje",JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION){
        lbj.LBJ.Login.escritorio.proveedor.refreshSupplierTable();
        this.dispose();
        }
    }//GEN-LAST:event_jButton5ActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton5;
    private javax.swing.JComboBox jComboEstado;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JLayeredPane jLayeredPane1;
    private javax.swing.JLayeredPane jLayeredPane2;
    private javax.swing.JTextField jcelularContacto;
    private javax.swing.JTextField jcorreo;
    private javax.swing.JTextField jdireccion;
    private javax.swing.JTextField jdniContacto;
    private javax.swing.JTextField jnombreContacto;
    private javax.swing.JTextField jrazon;
    private javax.swing.JTextField jruc;
    private javax.swing.JTextField jtelefono;
    // End of variables declaration//GEN-END:variables
}
